﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Linq;
using WebHoiChoMuaBan.Controllers.Helpers;

namespace WebHoiChoMuaBan.Models
{
    public partial class PageType
    {
        private bool isEdit;

        public bool IsEdit
        {
            get { return isEdit; }
            set { isEdit = value; }
        }

        public PageType(int id, string icon, string name, bool? isShowFooter, string url)
        {
            PageId = id;
            PageIcon = icon;
            PageName = name;
            PageShowFooter = isShowFooter;
            PageUrl = url;
        }

        public bool IsValid
        {
            get { return (GetRuleViolations().Count() == 0); }
        }

        public IEnumerable<RuleViolation> GetRuleViolations()
        {
            PageTypeHelper pageTypeHelper = new PageTypeHelper();
            int existed = pageTypeHelper.CheckExistedPage(this._PageName);
            if (String.IsNullOrEmpty(this._PageName) || this._PageName == "Tạo danh mục...")
                yield return new RuleViolation("Tên danh mục không được trống.", "CateName");
            else if (String.IsNullOrEmpty(this._PageIcon))
                yield return new RuleViolation("Tên icon menu chính không được trống.", "PageIcon");
            else if (existed > 0)
                yield return new RuleViolation("Danh mục này đã tồn tại.", "CateName");
            yield break;
        }

        partial void OnValidate(ChangeAction action)
        {
            if (!IsValid)
                throw new ApplicationException("Hãy nhập đầy đủ thông tin.");
        }
    }
}